﻿// <copyright file="FirewallPolicy.cs" company="Beuth Hochschule für Technik">
// Breakdown - Configure your Windows 7 Firewall
// Copyright (C) 2009 Stefan "dersteps@gmail.com" Matyba
// This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; 
// either version 3 of the License, or (at your option) any later version.
// 
// This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; 
// without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License along with this program; if not, see http://www.gnu.org/licenses/.
// </copyright>
// <author>Stefan Matyba</author>
// <email>dersteps@gmail.com</email>
// <date>2009-10-18</date>
// <summary>Breakdown Application Logic - Class for firewall policies (sets of rules)</summary>

namespace Breakdown.Logic
{
    using System;
    using System.Collections.Generic;
    using System.Collections.ObjectModel;
    using System.Globalization;
    using System.Linq;
    using System.Text;
    using Breakdown.Aspects;

    /// <summary>
    /// Defines a firewall policy
    /// </summary>
    [Logged]
    public class FirewallPolicy : APolicy
    {
        /// <summary>
        /// Initializes a new instance of the FirewallPolicy class having an empty name and description, being inactive and having no rules
        /// </summary>
        public FirewallPolicy() : this(string.Empty, string.Empty, false)
        {
        }

        /// <summary>
        /// Initializes a new instance of the FirewallPolicy class
        /// </summary>
        /// <param name="name">The name of the new policy</param>
        /// <param name="description">A short description of the new policy</param>
        /// <param name="active">Determines whether or not the new policy is active</param>
        public FirewallPolicy(string name, string description, bool active)
        {
            this.Name = name;
            this.Description = description;
            this.Active = active;
        }

        /// <summary>
        /// Overridden. Updates this Observer on changes on observed items
        /// </summary>
        /// <param name="observed">The IObservable that changed</param>
        public override void Update(IObservable observed)
        {
            base.Update(observed);
        }
    }
}
